package main

import "fmt"

func main() {
	// 定义map
	var m1 map[string]int
	// map必须初始化,建议一次预估好容量,不然到时还要扩容
	m1 = make(map[string]int, 10)
	m1["理想"] = 18
	m1["王彪"] = 10000
	fmt.Println(m1)       // map[王彪:10000 理想:18]
	fmt.Println(m1["理想"]) // 18
	fmt.Println(m1["肖战"]) // 0
	// 一般不存在的值这样写:
	v, ok := m1["肖战"]
	if !ok {
		fmt.Println("查无此key") // 查无此key
	} else {
		fmt.Println(v)
	}

	// 遍历map
	for s, i := range m1 {
		fmt.Println(s, i)
	}
	// 只遍历key
	for s := range m1 {
		fmt.Println(s)
	}
	// 只遍历value
	for _, i := range m1 {
		fmt.Println(i)
	}

	// 删除元素
	delete(m1, "王彪")
	fmt.Println(m1)	// map[理想:18]
	// 删除不存在的元素,不报错
	delete(m1, "王二狗")
}
